$(function () {
    $("#jqGrid").jqGrid({
        url: 'sys/generator/list',
        datatype: "json",
        colModel: [			
			{ label: '表名', name: 'tableName', width: 100, key: true },
			{ label: 'Engine', name: 'engine', width: 70},
			{ label: '表备注', name: 'tableComment', width: 100 },
			{ label: '创建时间', name: 'createTime', width: 100 }
        ],
		viewrecords: true,
        height: 385,
        rowNum: 10,
		rowList : [10,30,50,100,200],
        rownumbers: true, 
        rownumWidth: 25, 
        autowidth:true,
        multiselect: true,
        pager: "#jqGridPager",
        jsonReader : {
            root: "page.list",
            page: "page.currPage",
            total: "page.totalPage",
            records: "page.totalCount"
        },
        prmNames : {
            page:"page", 
            rows:"limit", 
            order: "order"
        },
        gridComplete:function(){
        	//隐藏grid底部滚动条
        	$("#jqGrid").closest(".ui-jqgrid-bdiv").css({ "overflow-x" : "hidden" }); 
        }
    });
});

var vm = new Vue({
	el:'#rrapp',
	data:{
		q:{
			tableName: null
		},
        showConfig: false,
        configInfo: {},
        newConfigInfo: {}
	},
    created () {
        $.ajax({
            type: "GET",
            url: 'sys/generator/config',
            contentType: "application/json",
            success: function(r){
                if(r.code === 0){
                    vm.configInfo = r.data;
                }else{
                    alert(r.msg);
                }
            }
        });
    },
	methods: {
		query: function () {
			$("#jqGrid").jqGrid('setGridParam',{ 
                postData:{'tableName': vm.q.tableName},
                page:1 
            }).trigger("reloadGrid");
		},
        config: function () {
		    vm.showConfig = true;
            Object.assign(vm.newConfigInfo, vm.configInfo);
        },
        saveOrUpdate: function () {
            vm.showConfig = false;
            Object.assign(vm.configInfo, vm.newConfigInfo);
        },
        reload: function () {
            vm.showConfig = false;
            var $jqGrid = $("#jqGrid");
            var page = $jqGrid.jqGrid('getGridParam','page');
            $jqGrid.jqGrid('setGridParam',{
                postData:{'tableName': vm.q.paramKey},
                page:page
            }).trigger("reloadGrid");
        },
		generator: function() {
            var tableNames = getSelectedRows();
            if(tableNames == null){
                return ;
            }
            location.href = "sys/generator/code?tables=" + tableNames.join() + "&config=" +  encodeURIComponent(JSON.stringify(vm.configInfo));
		}
	}
});

